System Design of Job scheduler in Golang

Last Edited
Tags

Background

Container tech in recent years has been used a lot in web development. I am very interested in engineering some useful applications that works in docker and Kubernetes environment. In previous posts, I wrote down my study of K8S system. In this post, I am going to continue my journey and build tools with GoLang. This post will be more formal, similar to a system design document.

Functional requirements

Design a microservices system works as periodically crawling job information. Then send out email notification based on user preference. It should be in golang, docker, and k8s (potentially) for studying purpose.

Design choice



Overall Design

Detailed Design

— Go Cron (Scheduler)

— Task Service and User Service

— Deduplicate urls

UI and Email

Final thoughts


* Notes for EC2 Setup


Code Reference

https://github.com/HarrisonLL/Distributed_Job_Crawler